//该文件用于创建Vuex中最为核心的store
import Vue from 'vue'
//引入Vuex
import Vuex from 'vuex'
//使用插件
Vue.use(Vuex)
//准备actions---用于响应组件中的动作
const actions = {
    // jia(context, value) {
    //     console.log('actions中的 jia 被调用了');
    //     context.commit('JIA', value)
    // },
    // jian(context, value) {
    //     console.log('actions中的 jian 被调用了');
    //     context.commit('JIAN', value)
    // },
    jiaOdd(context, value) {
        console.log('actions中的 jiaOdd 被调用了');
        if (context.state.sum % 2) {
            context.commit('JIAODD', value)
        }
    },
    jiaWait(context, value) {
        console.log('actions中的 jiaWait 被调用了');
        setTimeout(() => {
            context.commit('JIAWAIT', value)
        }, 500);
    }
}
//准备mutations---用于操作数据
const mutations = {
    JIA(state, value) {
        console.log('mutations中的 JIA 被调用了');
        state.sum += value
    },
    JIAN(state, value) {
        console.log('mutations中的 JIAN 被调用了');
        state.sum -= value
    },
    JIAODD(state, value) {
        state.sum += value
    },
    JIAWAIT(state, value) {
        state.sum += value
    }
}
//准备state---用于存储数据
const state = {
    sum: 0,
    subject: '前端',
    school: '黑马'
}
//准备getters---用于计算state中的数据
const getters = {
    bigSum(state) {
        return state.sum * 10
    }
}

//创建并暴露store
export default new Vuex.Store({ actions, mutations, state, getters })